Advances in communication infrastructures and protocols have turned standard computing devices into valuable communications tools. Computers communicate with each other, and with other electronic devices, over networks ranging from Local Area Networks (LANs) to wide reaching Global Area Networks (GANs) such as the Internet. In addition, wireless communications devices, such as mobile phones, Personal Digital Assistants (PDAs), and the like, have been increasingly designed to interface with these digital networks.
Today, such wireless devices are being used for a variety of different types of communication. For example, current and anticipated mobile phone technologies have transformed wireless devices into powerful communication tools capable of communicating voice, data, images, video, and other multimedia content. Mobile phones, at one time solely a voice communication tool, now often include network communication capabilities such as e-mail, World Wide Web browsing, etc.
With the integration of wireless and landline network infrastructures, a multitude of new services are arising, and various information types can be conveniently communicated between wireless and/or landline terminals. As a result, devices that access these services are dealing with a wide variety of network and communications protocols. Some of these protocols are specialized for mobile terminals, and others like Internet protocols were not particularly designed for mobile terminals, but are useful nonetheless for mobile terminals due to their ubiquity. It is advantageous to include features in mobile terminals that allow access to data using many types of protocols, and in particular to allow accessing multimedia content over those protocols.
One important concern in providing more advanced multimedia data involves providing assurances of Quality of Service (QoS) over data links. Historically, digital network data transfer dealt with exchanging messages and files over the network. Therefore, digital data transmission technologies such as TCP/IP were initially focused on providing transfer of complete and uncorrupted data from one computer to another. Much of this data transfer was “bursty”, meaning most of the data transferred for any given transaction occurred using the maximum available bandwidth over a small period of time.
Further, although fast data transfer is always the goal of any network, the timing or ordering of data packets was not critical, as long as in the end the total transaction was completed quickly with all data accurately and completely transferred. Since these traditional uses were forgiving of latencies and unpredictable packet delays in favor of reliable transport (i.e. every byte gets transferred correctly), the networks could use many techniques such as retransmissions and dynamic packet routing to avoid contention and improve robustness.
In contrast, streaming media such as audio and video is very unforgiving of latency and delay. Latency and delay leads to perceptible dropouts and other degradation of the end signal. On the other hand, unlike file transfers, multimedia streams are sometimes forgiving of the occasional lost packets of data, as long as the packet of data following the lost one arrives at the appropriate time. Further, multimedia streams are not bursty—they rely on some minimum level of bandwidth to work effectively, but rarely, if ever, need to exceed that minimum bandwidth for a given quality of media. Therefore, multimedia applications in particular can benefit from some level of predictable network QoS.
To address these issues, certain modifications were made to existing protocols such as TCP/IP in an attempt to provide QoS, and protocols such as ATM were devised with QoS in mind from the inception. In general, these efforts have included both the IP protocol (layer 3 OSI model) as well as access technologies and protocols (layer 2 in OSI model). The end result is that there exist a number of methods for provisioning of Quality of Service both at different layers of OSI model. As a result, the QoS standards vary widely, and most application level use of QoS is ad hoc and highly dependent on the underlying network protocols. For now, application developers find it difficult to implement QoS features in products such as multimedia applications because of the state of flux in QoS implementation and the varied ways in which it can be implemented. The programming overhead needed to independently implement QoS features in an application is daunting, particularly when the applications must work in multi-protocol networking environments. Moreover, the application developer is expected to understand the underlying QoS mechanisms and involved network protocols to efficiently deploy QoS features. Accordingly, there is a need to enable application developers to easily include QoS features in their products, particularly in devices and systems that utilize multiple networking protocols.